home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / music / cthugha5.zip / CTHU5SRC.ZIP / CDROM.H < prev    next >
C/C++ Source or Header  |  1994-08-19  |  4KB  |  175 lines

  1. #define IOCTL_READ     3
  2. #define IOCTL_WRITE     12
  3.  
  4. #define CD_GETDISCINFO    10
  5. #define CD_GETTRACKINFO    11
  6. #define CD_GETQCHANINFO    12
  7. #define CD_GETUPCCODE    14
  8. #define CD_GETAUDIOSTAT    15
  9.  
  10. #define CD_CMD_EJECT    0
  11. #define CD_CMD_RESET    2
  12. #define CD_CMD_SEEK    131
  13. #define CD_CMD_PLAY    132
  14. #define CD_CMD_STOP 133
  15. #define CD_CMD_RESUME 136
  16.  
  17. #define CDISHERE         0x01
  18. #define CDISPLAYING    0x02
  19. #define CDISPAUSED    0x04
  20.  
  21. typedef unsigned char uchar;
  22.  
  23. struct cdromdrivestruct
  24. {
  25.     char unitcode;
  26.     char far *ddheader;
  27. };
  28.  
  29. struct cdreqheader
  30. {
  31.     char len;
  32.     char unit;
  33.     char cmd;
  34.     int stat;
  35.     char reserved0[8];
  36. };
  37.  
  38. struct ioctlread
  39. {
  40.     struct cdreqheader cdh;
  41.     char mdb;
  42.     void far *buffer;
  43.     int size;
  44.     int ssn;
  45.     void far *errbuf;
  46. };
  47. struct ioctlwrite
  48. {
  49.     struct cdreqheader cdh;
  50.     char mdb;
  51.     void far *buffer;
  52.     int size;
  53.     int ssn;
  54.     void far *errbuf;
  55. };
  56. struct ioctlseek
  57. {
  58.     struct cdreqheader cdh;
  59.     char addrmode;
  60.     void far *buffer;
  61.     int sectorcount;
  62.     long startsector;
  63. };
  64. struct ioctlplay
  65. {
  66.     struct cdreqheader cdh;
  67.     char addrmode;
  68.     long startsector;
  69.     long sectorcount;
  70. };
  71. struct ioctlstop
  72. {
  73.     struct cdreqheader cdh;
  74. };
  75. struct ioctlresume
  76. {
  77.     struct cdreqheader cdh;
  78. };
  79. struct ioctlstat
  80. {
  81.     char cmd;
  82.     int status;
  83.     long startloc;
  84.     long endloc;
  85. };
  86.  
  87. struct discinfo
  88. {
  89.     char cmd;
  90.     char strk;
  91.     char ltrk;
  92.     long eodisc;
  93. };
  94.  
  95. struct trackinfo
  96. {
  97.     char cmd;
  98.     char track;
  99.     uchar frame;
  100.     uchar sec;
  101.     uchar min;
  102.     char dummy;
  103.     char control;
  104. };
  105.  
  106. struct qchaninfo
  107. {
  108.     char cmd;
  109.     char caa;
  110.     char track;
  111.     char index;
  112.     uchar min;
  113.     uchar sec;
  114.     uchar frame;
  115.     char reserved1;
  116.     uchar amin;
  117.     uchar asec;
  118.     uchar aframe;
  119. };
  120.  
  121. struct upccode
  122. {
  123.     char cmd;
  124.     char adr;
  125.     char code[7];
  126.     char zero;
  127.     char aframe;
  128. };
  129.  
  130. /* prototypes */
  131. /* mscdex.asm */ int ismscdex(void);
  132. /* mscdex.asm */ int getnumcdroms(void);
  133. /* mscdex.asm */ int getfirstcdrom(void);
  134. /* mscdex.asm */ void getcdromlist(struct cdromdrivestruct far *cdromlist);
  135. /* mscdex.asm */ int getcopyrightfname(int drive, char far *copyrightfname);
  136. /* mscdex.asm */ int getabstractfname(int drive, char far *abstractfname);
  137. /* mscdex.asm */ int getbibliofname(int drive, char far *bibliofname);
  138. /* mscdex.asm */ int readvtoc(int drive, int index, char far *dscbuf);
  139. /* mscdex.asm */ int absdiscread(int drive, int count, long sector, char far *buffer);
  140. /* mscdex.asm */ int absdiscwrite(int drive, int count, long sector, char far *buffer);
  141. /* mscdex.asm */ int chkdrive(int drive);
  142. /* mscdex.asm */ int getmscdexversion();
  143. /* mscdex.asm */ void getcdromunits(char far *cdromunits);
  144. /* mscdex.asm */ int getvdescpref(int drive);
  145. /* mscdex.asm */ int setvdescpref(int drive, int pref);
  146. /* mscdex.asm */ int getdirentry(int drive, char far *name, char far *buffer);
  147. /* mscdex.asm */ void senddevreq(int drive, void far *cdh);
  148. /* mscdex.asm */ int getlasterror(void);
  149. /* mscdex.asm */ int clearlasterror(void);
  150.  
  151. /* cdrom.c */ cdplay(int drive, long frame, long lframe);
  152. /* cdrom.c */ cdstop(int drive);
  153. /* cdrom.c */ cdpause(int drive);
  154. /* cdrom.c */ cdresume(int drive);
  155. /* cdrom.c */ cdseek(int drive, long frame);
  156. /* cdrom.c */ cdreset(int drive);
  157. /* cdrom.c */ cdeject(int drive);
  158. /* cdrom.c */ cdstatus(int drive);
  159. /* cdrom.c */ cdaudiostatus(int drive, long *nextstart, long *nextend);
  160. /* cdrom.c */ cdmediachanged(int drive, int *yesorno);
  161. /* cdrom.c */ int cddiscinfo(int drive, struct discinfo *di);
  162. /* cdrom.c */ int cdtrackinfo(int drive, int track, struct trackinfo *ti);
  163. /* cdrom.c */ int cdqchaninfo(int drive, struct qchaninfo *qi);
  164. /* cdrom.c */ isanaudiocd(int drive);
  165. /* cdrom.c */ long redtolong(long redaddress);
  166. /* cdrom.c */ long longtored(long longval);
  167. /* cdrom.c */ long msftolong(long msfvalue);
  168. /* cdrom.c */ inttobcd(int data);
  169. /* cdrom.c */ bcdtoint(int data);
  170. /* cdrom.c */ fixmsf(int *min, int *sec, int *frame);
  171. /* cdrom.c */ cdseekmsf(int drive, int min, int sec, int frame);
  172. /* cdrom.c */ cdplaymsf(int drive, int min, int sec, int frame, int lmin, int lsec, int lframe);
  173.  
  174.  
  175.